Replace the controller manager's RESTMapper with a dynamic one #95
+115
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
controller-manager assumes that all resource Kinds will have been created before it starts up, so it can't deal with the case of creating a CRD and then creating an instance of that CRD (or waiting for another operator to create a CRD, and then creating an instance of that CRD). This is maybe not the bestest fix, but it works and we can discuss it further upstream.
Note that this code would be especially bad/inefficient if we thought that the controller was going to be repeatedly asked about objects of non-existent types, but there's no reason that would happen in CNO, so the reload path should only get hit in the creating-an-instance-of-a-previously-created-CRD case.